/**  
 * 冒泡排序函数  
 * 通过对相邻的元素进行两两比较，顺序相反则进行交换，每一轮比较会将当前未排序部分的最大值“冒泡”到未排序部分的末尾。  
 *  
 * @param a 待排序的数组  
 * @param n 待排序的数组长度  
 */  
public static void bubbleSort(int[] a, int n) {  
    for (int i = 0; i < n - 1; i++) { // 外层循环，控制排序的轮数  
        // i 表示当前已经排序好的元素个数，因此每一轮排序后，最大的元素会移到正确的位置  
        for (int j = 0; j < n - i - 1; j++) { // 内层循环，控制每轮中比较的次数  
            // j 表示当前比较的元素索引，从0开始到n-i-2，因为最后i个元素已经是排序好的  
            if (a[j] > a[j + 1]) { // 如果当前元素大于下一个元素  
                // 则交换这两个元素的位置，保证较大的元素向数组的末尾移动  
                // 交换 a[j] 和 a[j+1]  
                int temp = a[j]; // 使用临时变量temp存储a[j]的值  
                a[j] = a[j + 1]; // 将a[j+1]的值赋给a[j]  
                a[j + 1] = temp; // 将temp（即原来的a[j]的值）赋给a[j+1]  
            }  
        }  
    }  
} 
